<?php
	session_start();
	require_once '../config_sport.php';		// Подключаем основной файл конфигурации
	
	// Функция автозагрузки классов
	function __autoload($className) {
		require_once 'system/classes/' . str_replace('_', '/', $className) . '.php';
	}
	
	$getStrPos = strpos($_SERVER['REQUEST_URI'], '?');
	$strUrl = substr($_SERVER['REQUEST_URI'], 0, $getStrPos ? $getStrPos : strlen($_SERVER['REQUEST_URI']));
	$arrRequest = explode('/', substr($strUrl, 1)); // Преобразовываем URL к массиву
	if ($arrRequest[count($arrRequest) - 1] != '') $arrRequest[count($arrRequest)] = ''; // Для удобства оставляем последним элементом в массиве $arrRequest пустую строку

	// Определение контроллера для обработки запроса
	switch ($arrRequest[0]) { 
		case '':	   // Главная страница
			$controller = new Controller_Index($arrRequest);
			break;
		case 'profile': // Страницы, связанные с профилем
			$controller = new Controller_Profile($arrRequest);
			break;
		case 'teams': // Страницы, связанные с профилем
			$controller = new Controller_Team($arrRequest);
			break;
		case 'messages': // Страницы переписки
			$controller = new Controller_Message($arrRequest);
			break;
		case 'fields': // Страница карты с футбольными полями
			$controller = new Controller_Field($arrRequest);
			break;
		case 'auth': // Страница аутентификации
			$controller = new Controller_Auth($arrRequest);
			break;
		case 'logout': // Разлогиниться
			User_Seance::authorizationOut();
			header('Location: ' . W_ABSPATH);
			exit();
			break;
		case 'ajax': // обработка AJAX - запросов
			switch ($arrRequest[1]) {
				case 'user':
					$controller = new Controller_Ajax_User($arrRequest);
					break;
				case 'city':
					$controller = new Controller_Ajax_City($arrRequest);
					break;
				case 'field':
					$controller = new Controller_Ajax_Field($arrRequest);
					break;
				case 'team':
					$controller = new Controller_Ajax_Team($arrRequest);
					break;
				case 'message':
					$controller = new Controller_Ajax_Message($arrRequest);
					break;
			}
			break;
		default:
			$controller = new Controller_Default($arrRequest); // Контроллер по умолчанию
			break;
	}
	
	
	try {
		$controller->action();
	}
	catch (Exception $e) {
		$errors = array(404, 403, 503);
		if (in_array($e->getCode(), $errors)) {
			$controller->setError($e->getCode());
			$controller->showError();
		}
	}
?>